tests/sizes: Test that sizes metadata is not reused
authorDan Nicholson <nicholson@endlessm.com>
Wed, 23 Oct 2019 15:10:06 +0000 (09:10 -0600)
committerDan Nicholson <nicholson@endlessm.com>
Tue, 21 Jan 2020 03:42:27 +0000 (20:42 -0700)
Ensure that the object sizes hash table is cleared after a commit and
not only when the repo is closed.

tests/test-sizes.js

index a3928fe8eacfb9d7be33af873227303c6721f581..46848905bd73bc328a0c554b1e8c172998714252 100755 (executable)
@@ -118,7 +118,7 @@ function validateSizes(repo, commit, expectedFiles) {
     }
 }
 
-print('1..2')
+print('1..3')
 
 let testDataDir = Gio.File.new_for_path('test-data');
 testDataDir.make_directory(null);
@@ -157,6 +157,23 @@ validateSizes(repo, commit, expectedFiles);
 
 print("ok test-sizes");
 
+// Remove a file to make sure that metadata is not reused from the
+// previous commit
+testDataDir.get_child('another-file').delete(null);
+delete expectedFiles['f5ee222a21e2c96edbd6f2543c4bc8a039f827be3823d04777c9ee187778f1ad'];
+
+repo.prepare_transaction(null);
+mtree = OSTree.MutableTree.new();
+repo.write_directory_to_mtree(testDataDir, mtree, commitModifier, null);
+[,dirTree] = repo.write_mtree(mtree, null);
+[,commit] = repo.write_commit(null, 'Some subject', 'Some body', null, dirTree, null);
+print("commit => " + commit);
+repo.commit_transaction(null);
+
+validateSizes(repo, commit, expectedFiles);
+
+print("ok test-sizes file deleted");
+
 // Repeat the commit now that all the objects are cached and ensure the
 // metadata is still correct
 repo.prepare_transaction(null);